/**
 * 
 */
package com.feib.stms.dao;

import java.util.List;

import com.feib.stms.model.Group;
import com.feib.stms.model.User;
import com.feib.stms.pagination.PaginatedList;

/**
 * @author Jimmy Liu
 *
 */
public interface UserDao {

	public User getByUserIdGroupNo(User user);

	public int doLoginSuccess(User user);

	public int doLoginFail(User user);

	public User getByUserPk(Long userPk);

	public int doChangePwdSuccess(User user);
	
	/**
	 * 新增使用者
	 * @param user
	 * @return int
	 */
	public int insert(User user);
	
	/** 分頁查詢使用者資料
	 * @param user
	 * @param paginatedList
	 * @return PaginatedList<User>
	 */
	public PaginatedList<User> queryForPaginatedListByUser(User user , PaginatedList paginatedList);
	
	/** 查詢userId是否重複 --新增使用
	 * @param userId
	 * @param groupPk
	 * @return
	 */
	public int countUserId(String userId,Long groupPk);
	
	/** 查詢userId是否重複 --修改使用
	 * @param userPk
	 * @param userId
	 * @param groupPk
	 * @return
	 */
	public int countUserId(Long userPk, String userId,Long groupPk);
	
	/** 修改使用者
	 * @param user
	 * @return
	 */
	public int update(User user);
	
	/** 根據使用者帳號查詢使用者
	 * @param userId
	 * @param groupPk
	 * @return
	 */
	public User findByUserId(String userId,Long groupPk);
	
	
	/**
	 * 
	 * @param group
	 * @param menuItemPk
	 * @param uploadFilePk
	 * @return
	 */
	public List<String> findUserEmailByGroupMenuId(Group group, Long menuItemPk ,Long uploadFilePk);

}
